package com.lipaluma.annotations.validations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.lipaluma.field.validator.Validator;

@Documented
@Inherited
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ValidateDecimal {

	Class<? extends Validator>[] customs() default {};

	boolean required() default false;
	
	boolean unique() default false;

	boolean constant() default false;

	double constantValue() default 0;
	
	boolean constantSupplied() default false;
	
	double min() default Long.MIN_VALUE;
	
	double max() default Long.MAX_VALUE;
	
	double[] includedIn() default {};
	
	double[] excludedOf() default {};

	int precision() default -1;

}
